Many computer systems often include a host computer and a disk storage subsystem which includes a controller and one or more disk drives.
The disk controller may include a controller microprocessor coupled to a host input/output (I/O) processor, a disk I/O processor and a cache memory. The controller microprocessor generally coordinates and controls the transfer of data from the host computer to the disk storage subsystem and vice-versa.
In a so-called write-through cache disk storage subsystem, data which is transferred between the host and the disks is selectively copied into the cache memory of the disk controller. In this manner, frequently accessed data may be stored in the cache memory. Thus when the host initiates a data request, if the data is stored in the cache memory, the data may be retrieved from the cache memory rather than from a disk drive. Retrieving data from the cache memory avoids the necessity of accessing the disk drive of the disk storage subsystem which is relatively slow compared to the cache memory. Therefore data retrieval is accomplished more rapidly which in turn leads to an overall increase in system performance.
One problem which arises in write-through cache controllers, however, is that when the host computer executes a write-to-disk command, the controller takes a relatively long period of time to store the data in the cache memory, and then subsequently store the data on the respective disk drive or drives. This decreases the data throughput capability of the computer system.
It would, therefore, be desirable to provide a disk controller capable of storing in a cache memory data to be written to or retrieved from one or more disk drives of a disk storage subsystem, while also enabling write operations to the one or more disk drives to be completed rapidly.